package com.itheima.dao;

import com.github.pagehelper.Page;
import com.itheima.pojo.Member;

import java.util.List;

/**
 * @author : [chenxys]
 * @version : [v1.0]
 * @Description : 会员管理
 * @createTime : [2022/5/30 09:30]
 */
public interface MemberDao {
   /**
    * 新增会员
    * @author chenxys
    * @param member
    * @return void
    */
    void add(Member member);
    /**
     * 查询所有会员
     * @author chenxys
     * @param
     * @return java.util.List<com.itheima.pojo.Member>
     */
    List<Member> findAll();
    /**
     * 动态条件查询
     * @author chenxys
     * @param queryString
     * @return com.github.pagehelper.Page<com.itheima.pojo.Member>
     */
    Page<Member> findByCondition(String queryString);
    /**
     * 删除会员
     * @author chenxys
     * @param id
     * @return void
     */
    void deleteById(Integer id);
    /**
     * 根据ID查询会员 包括体检人信息、套餐信息
     * @author chenxys
     * @param id
     * @return com.itheima.pojo.Member
     */
    Member findById(Integer id);
    /**
     * 根据电话查询会员
     * @author chenxys
     * @param telephone
     * @return com.itheima.pojo.Member
     */
    Member findByTelephone(String telephone);
    /**
     * 修改会员信息
     * @author chenxys
     * @param member
     * @return void
     */
    void edit(Member member);
    /**
     * 根据日期统计会员数，统计指定日期之前的会员数
     * @author chenxys
     * @param date
     * @return java.lang.Integer
     */
    Integer findMemberCountBeforeDate(String date);
    /**
     * 根据日期统计会员数
     * @author chenxys
     * @param date
     * @return java.lang.Integer
     */
    Integer findMemberCountByDate(String date);
    /**
     * 根据日期统计会员数，统计指定日期之后的会员数
     * @author chenxys
     * @param date
     * @return java.lang.Integer
     */
    Integer findMemberCountAfterDate(String date);
    /**
     * 总会员数
     * @author chenxys
     * @param
     * @return java.lang.Integer
     */
    Integer findMemberTotalCount();
    /**
     * 根据月份查询会员数量
     * @author chenxys
     * @param month 月份
     * @return java.lang.Integer
     */
    Integer findMemberByMonth(String month);
}
